package com.wangqingbo.myspringboot212.dao;

import com.wangqingbo.myspringboot212.entity.JdbcVo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

/**
 * jdbc数据源的配置
 * 使用注解@Configuration，说明这是一个配置类
 * 使用注解@PropertySource("classpath:jdbc.properties")
 * 加载jdbc的配置文件
 */
@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {

    // 数据库的驱动 使用注解@Value("${jdbc.driverClassName}")
    // 给属性赋值，注解中值的格式为：${jdbc.driverClassName}
    // jdbc.driverClassName:配置文件中key值，就是=前面的值
    @Value("${jdbc.driverClassName}")
    private String driverName;
    // 数据库的连接地址
    @Value("${jdbc.url}")
    private String url;
    // 数据库的用户名
    @Value("${jdbc.username}")
    private String username;
    // 数据库的密码
    @Value("${jdbc.password}")
    private String pwd;

    public String getDriverName() {
        return driverName;
    }

    public void setDriverName(String driverName) {
        this.driverName = driverName;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    /**
     * 注册一个JdbcVo的bean
     * 使用注解@Bean注册一个bean
     * @return
     */
    @Bean
    public JdbcVo getJdbcVo()
    {
        JdbcVo vo = new JdbcVo();
        // 给对象个属性赋值
        vo.setPwd(this.pwd);
        vo.setUrl(this.url);
        vo.setUsername(this.username);
        vo.setDriverName(this.driverName);

        return vo;
    }
}
